package com.health.service.impl;

import com.health.entity.TPermision;
import com.health.entity.pojo.vo.TPermisionVO;
import com.health.mapper.TPermisionMapper;
import com.health.service.ITPermisionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Set;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author sanchuan
 * @since 2023-04-19
 */
@Service
public class TPermisionServiceImpl extends ServiceImpl<TPermisionMapper, TPermision> implements ITPermisionService {
    @Autowired
    private TPermisionMapper tpMapper;

    /**
     * 查找权限
     * @param username
     * @return
     */
    @Override
    public Set<String> findPermissionsByAccount(String username) {
        return tpMapper.findPermissionsByAccount(username);
    }

    /**
     * 获得所有权限
     * @return
     */
    @Override
    public List<TPermisionVO> listPermision() {
        // 根据listPermision()方法获得父权限ID，在通过父权限ID去查询下属的子权限。
        List<TPermisionVO> tPermisionVOList = tpMapper.listPermision();
        for (TPermisionVO permisionVO: tPermisionVOList) {
            permisionVO.setLists(tpMapper.listSubPermision(permisionVO.getId()));
        }

        return tPermisionVOList;
    }

    /**
     * 根据id查找权限
     * @param id
     * @return
     */
    @Override
    public List<Integer> listPermissionsByID(Integer id) {
        return tpMapper.listPermissionsByID(id);
    }

}
